package com.yf.exam.modules.exam.dto.response;

import com.yf.exam.modules.exam.dto.ExamDTO;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.extern.log4j.Log4j2;

import java.util.Calendar;

/**
* <p>
* 考试数据传输类
* </p>
*
* @author 聪明笨狗
* @since 2020-07-25 16:18
*/
@Log4j2
@Data
@ApiModel(value="考试校验请求类", description="考试校验请求类")
public class ExamCheckRespDTO extends ExamDTO {


    private static final long serialVersionUID = 1L;

    /**
     * 考试次数
     */
    public Integer examCount;

    /**
     * 是否购买
     */
    public Boolean isBuy;

    /**
     * 是否忽略密码
     */
    public Boolean ignorePass;

    /**
     * 是否迟到
     * @return
     */
    public Boolean getLate(){

        // 限制时间的
        if(this.getLateMax()!=null
                && this.getLateMax() > 0 ){

            Calendar cl = Calendar.getInstance();
            cl.setTime(this.getStartTime());
            cl.add(Calendar.MINUTE, this.getLateMax());

            if(cl.getTimeInMillis() < System.currentTimeMillis()){
                return true;
            }
        }
        return false;
    }

    /**
     * 校验时间
     * @return
     */
    public Boolean getOverTime(){

        Calendar cl = Calendar.getInstance();
        cl.setTimeInMillis(System.currentTimeMillis());

        if(cl.getTime().before(this.getStartTime())){
            log.info("考试尚未开始！");
            return true;
        }

        if(cl.getTime().after(this.getEndTime())){
            log.info("考试已经结束！");
            return true;
        }

        return false;
    }

}
